#ifndef MYSQL_H
#define MYSQL_H

#include <QObject>
#include <QSqlDatabase>
#include <QSqlError>
#include <QMap>
/*
 * m_db.isValid():是否在引用(QSqlDatabase::addDatabase返回值)
 * m_db.isOpen():是否已经打开一个数据库且可以使用
 * QSqlDatabase::addDatabase():创建一个database链接,返回QSqlDatabase对象引用,该对象isValid()为true!
 * QSqlDatabase::removeDatabase():移除一个database链接,必须要保证没有QSqlDatabase对象引用该链接(可以引用其他数据库链接来断开这个引用)
 *
*/
//Mysql连接类,用来连接数据库
class Mysql: public QObject
{
    Q_OBJECT
public:
    explicit Mysql(QObject *parent = nullptr);
    virtual ~Mysql();

signals:
    void s_Debug(QString msg);   //调试信息
    void s_Critical(QString msg);               //调试信息

public:
    //链接数据库
    bool connectDB();
    void close();

    QSqlDatabase *getDB()
    {
        return &m_db;
    }

    QMap<QString,QString> &getMySqlInfo()
    {
        return m_MySqlInfo;
    }



public:
    QMap<QString,QString> m_MySqlInfo;
protected:
    QSqlDatabase m_db;  //数据库对象
private:

};


#endif // MYSQL_H
